#ifndef FACTORIAL_HPP
#define FACTORIAL_HPP

template <int N>
class Factorial {
public:
	enum { value = N * Factorial<N-1>::value };
};

template<>
class Factorial<0>
{
public:
	enum { value = 1 };
};
#endif